<!--
 * @Author: your name
 * @Date: 2021-03-16 20:58:17
 * @LastEditTime: 2021-03-16 21:40:13
 * @LastEditors: Please set LastEditors
 * @Description: In User Settings Edit
 * @FilePath: \daily\深拷贝.html
-->
<script>
  function conl(stres) {
    var lets//放置更改后的数据
    if (typeof stres === 'object') {//如果stres是一个对象类型
      if (Array.isArray(stres)) {//如果他是个对象，还是个数组
        lets = []//变成数组
        for (let i in stres) {//循环得到数组内容
          lets.push(stres[i])//添加到新数组
        }
      } else {//如果他是个对象
        lets = {}
        for (let i in stres) {//循环得到数组内容
          lets[i] = stres[i]//添加到新数组
        }
      }

    } else {//如果不是对象，那就是简单数据类型
      lets = stres
    }
    return lets//这里换行的话，失效
  }
  let obj1 = {
    a: {
      c: /a/,
      d: undefined,
      b: null
    },
    b: function () {
      console.log(this.a)
    },
    c: [
      {
        a: 'c',
        b: /b/,
        c: undefined
      },
      'a',
      3
    ]
  }
  var obj2 = conl(obj1)
  console.log(obj2);

</script>